Traditional French Cassoulet Recipe

French cassoulet served out of a Dutch oven and onto a plate.

Serious Eats / J. Kenji López-Alt

Why It Works

  • Soaking the beans in salted water overnight helps keep them tender as they cook.
  • Chicken used in place of the traditional duck picks up tons of flavor from the cured meat products and comes out meltingly tender and meaty.
  • Adding gelatin to the cooking liquid helps it form a better crust on the casserole as it bakes.

Food instills passion. Food has history. Food is culture. It should be taken seriously and respectfully. But at the same time, it's meant to be delicious and give pleasure. What started in the French region of Languedoc as a humble peasant dish of dried beans cooked with various sausages and preserved meats—think of it as southern France's Beanee-Weenees—has turned into an all-out culture war with not one, not two, but three towns all claiming to be the originators of the One True Cassoulet.

You thought local sports fans are insane? You should head over to one of those medieval walled cities—Toulouse, Castelnaudary, and Carcassonne all have claims to the dish—and chat with some local cassoulet chefs to see what a true fanatic is like. The comparison is not as crazy as it sounds—members of the Académie Universelle du Cassoulet wear brightly colored uniforms, hand out medals, and wave banners just like sports fans. (I didn't spot any cassoulet cheerleaders twirling confit goose legs along the walls of Carcassonne when I visited, but I wouldn't be surprised if they exist.)

Here's the truth of the matter: Cassoulet is a medieval peasant dish designed to make do with whatever was around. In Languedoc, that happened to be dried beans, preserved duck, and preserved pork. Do you think any medieval French peasant would turn their nose up at the pot of beans because someone had dared to make it partridge-free?

Cassoulet served in an earthenware dish in Languedoc, France.
Real-deal cassoulet in Languedoc.

Serious Eats / J. Kenji López-Alt

The first time I had cassoulet in its home turf (the Carcassonne version, in fact), it was a revelation: The cassoulet I'd known for nearly all of my professional career is nothing like the cassoulet found in Languedoc. It's as if I'd spent my life in the kitchen at Giordano's in Chicago and just found out that there's a style of pizza beyond deep dish and that not only that, but I'm the weird one here. That loose, almost soup-like stew of beans and meat was so far removed from all versions of cassoulet I'd had in the United States, or even in other parts of France. Gone was the stodgy, stew-like broth. Gone were the bread crumb toppings. Gone were the extra vegetables.

Instead, we were presented with a large, bubbling vat of beans and meat, covered in a crust so dark that it was almost black. Our hostess cracked open the crust to reveal beans swimming in a rich, gelatinous broth with bits of tender duck leg, cured pork belly, pork shanks, and a few different sausages.

Traditional cassoulet served on a plate in Languedoc, France.

Serious Eats / J. Kenji López-Alt

Just as in a good risotto, the cassoulet flowed slowly across the plate, spreading out into a loose sauce. None of that solid-enough-to-mound stuff I'd seen everywhere else. Flavor-wise, it was different too. Rich, meaty, and overwhelmingly simple, there were a few background notes from aromatic vegetables—onions, carrots, celery, a few cloves, perhaps some bay leaf and parsley—but the main flavor was just that of the cured meat, a good stock, and beans.

The beans were cooked to the point of maximum creaminess—like a good loose hamburger, they were held together with nothing more than hope, melting on your tongue as soon as they hit your mouth. Similarly, all of the meats were meltingly tender, to the point where the only real texture was from the crust.

Like I said: simple, peasant fare.

The thing is, I thought I knew what cassoulet was before trying it in Languedoc. I made it at fancy pants restaurants. I'd eaten it everywhere from New York to Paris. I'd bought it in ridiculously expensive imported jars. I spent months developing a recipe for Cook's Illustrated that never saw the light of day.

But none of them ever came close to the real thing. Too thick, too fussy, too breadcrumb-y.

The version I'm giving you today does. And like any good peasant fare, it requires very little technique or skill, but does require a bit of time and TLC.

So how does one take this simple country dish and bring it home? Come along and I'll show you.

Why I Use Chicken In Cassoulet

I need to get one thing off my chest right off the bat here: I am not using duck or goose confit in my cassoulet. I am using plain old chicken legs.

Browning bone-in chicken drumsticks and thighs in a Dutch oven for cassoulet.

Serious Eats / J. Kenji López-Alt

I started tackling this recipe with the thought that I'd use duck—I even developed a recipe for making confit yourself from scratch. Then it struck me: I'm spending days making what is meant to be a simple peasant dish, and not only that, but by doing so, the end result is actually less true to the original. How so?

Well, duck is an ingredient in traditional cassoulet not by choice, but by necessity. Back in the days before refrigeration, duck meat was preserved by heavily salting it, slow-cooking it, then packing it under a layer of its own fat. Sure, it turns out that this produces a fantastically tasty end product, but you can make cassoulet without it. I'd argue that the most important part of the confit process—the slow cooking to tenderize tough connective tissue—could be considered wasted in a dish like cassoulet where the meat ends up getting slow-cooked anyway.

So why chicken? Well, duck happened to be very common and inexpensive in medieval Southern France. In modern urban America, not so much. You could go out and buy duck legs to use for this recipe, but chicken is cheap, widely available, and easy to work with.

Here's another thing: Most of the distinguishing flavor in a particular type of meat comes from the fat. So instead of just using duck, what if I were to incorporate a bit of store-bought duck fat?

Scooping store-bought duck fat out of a plastic container for cassoulet.

Serious Eats / J. Kenji López-Alt

I used that duck fat to brown the meat and bingo: true ducky, cassoulet flavor without any need for actual duck. I'd offer a cash reward for anyone who submits themselves to a Pepsi challenge and blind-tastes a bit of slow-cooked chicken and slow-cooked duck from the same pot of cassoulet prepared with duck fat and can tell me which is which.

Even without the duck fat, a chicken-based cassoulet is killer, so don't sweat it if you can't find or don't want to shell out for it.

A Porky Duo for Flavor-Packed Cassoulet

After the poultry, the pork is the next most important flavoring element in the cassoulet. Sausages are a must. In Languedoc, you'd typically find a garlicky pork sausage flavored with a bit of red wine. Back here, I like to use whatever mild garlic sausage I can find.

Adding stock to pot of dried beans, pork belly, ham hock, and aromatics for cassoulet.
Ham hocks and pork belly in the pot.

Serious Eats / J. Kenji López-Alt

For the cured, fatty element, I tried various cuts, including salted pork belly, regular bacon, pancetta, salted fatback, and salted smoked ham hocks. Both the bacon and hocks imparted too much smoky flavor to the mix. Fatback was just too fatty, and pancetta was immediately identifiable. Salted pork belly (usually sold as "salt pork" in the meat or sausage case) was the way to go.

I decided to start my cassoulet by rendering the fat from the pork belly with duck fat and using that combination to brown the rest of my ingredients.

Browning it as a whole piece before slicing it into smaller chunks for slow cooking seemed like a good way to go about it, but in the interest of saving time and streamlining, I settled on cutting it into chunks before browning. This gave more surface area for rendering fat to escape, as well as more surface for browning, which led to deeper flavor in the finished dish.

Browning diced pork belly in a Dutch oven for cassoulet.

Serious Eats / J. Kenji López-Alt

I tried cutting the meat into various sizes from thin strips to little 1/4-inch lardons, and I found that I much preferred larger, meatier cubes measuring about 3/4 inch. Rendering them relatively slowly helps to get them to release maximum fat without burning or singeing around the edges. Once the meat is golden brown and has rendered most of its fat, I take it back out of the pot.

How to Brown Chicken

One thing that's not necessary, and which I learned the hard way: salting your chicken. There's already a ton of salt that makes it into the dish from the salt pork and other ingredients, not to mention the liquid that slowly reduces in the oven. Just a few solid grinds of pepper are all it takes before the chicken is ready to go for a swim in the hot rendered pork fat.

Placing whole chicken legs in a Dutch oven to brown for cassoulet.

Serious Eats / J. Kenji López-Alt

When adding the chicken to the hot fat, lower it in gently, letting your hand get down right to the surface.

After that, let it do its thing: don't poke and prod that chicken too much, and definitely don't flip it until it is deeply, deeply browned. All that flavor is going to go right into your beans. Take out the chicken after browning both sides and set it aside with the pork belly. Then, brown the sausage on both sides, take it out, and set it aside.

Two Ways with Cassoulet Aromatics

Now comes a deeper question: how to incorporate the aromatics. Some recipes I've seen call for onions, carrots, celery, and garlic all to be finely chopped and left in the finished dish. I personally find the little bits of vegetables very distracting.

Sauteing onion in a Dutch oven for cassoulet.

Serious Eats / J. Kenji López-Alt

Instead, I chop only the onion and add it to the pot after the meat is done browning, using the steam and moisture it gives off to deglaze the pan, scraping up all the flavorful browned bits that the meat left behind. As for the other aromatics—a carrot, a couple stalks of celery, a head of garlic, some sprigs of parsley, a couple bay leaves, and few cloves—I find leaving them in large chunks and using them to flavor the stock in which I cook the beans is the best way to extract subtle flavor without the distracting bits of vegetable in the finished dish.

As for the beans, I tested my recipes using a few different types of dried white beans, from actual lingot beans I brought back from Languedoc to cannellini and small navy beans. Cannellini were the best domestic option. I tried cooking them a number of ways, from canned (no good—they don't develop flavor the way I'd like and their liquid doesn't thicken up enough as they cook) to non-soaked to soaked-and-cooked to completely pre-cooked before adding to the rest of the ingredients.

The best method was somewhere in between. I start by soaking my beans in a salty brine. Despite what you may have heard about salt preventing beans from softening properly, it actually accomplishes the exact opposite goal: salt ensures that bean skins turn tender.

Simmering cannellini beans in a Dutch oven for cassoulet.

Serious Eats / J. Kenji López-Alt

After draining the soaked beans I add them to the pot with the onions, a quart of store-bought chicken stock, and the aromatics. I simmer them until just shy of cooked before fishing out the spent aromatics, adding the meats back in, mixing everything around, and throwing it all into a low oven to finish cooking.

Getting a Crisp Skin Without a Traditional Cassoulet Pot

Baking is where the real magic of cassoulet happens. See, a good stock should be rich with proteins, and just like the proteins in meat, they brown when heated. As you cook a cassoulet in the oven, the top layer of liquid slowly evaporates, leaving an ever more concentrated layer of proteins on its surface. Eventually, these proteins form a raft-like skin.

By occasionally removing the cassoulet from the oven and breaking that skin, allowing fresh liquid to flow above it (traditionalists will tell you that seven times is the optimal number of breaks for the best skin), you build up a significant layer of skin. It's this skin that browns, forming the crust of a traditional cassoulet.

Baking in this way transforms this:

Assembled cassoulet in an earthenware pot before baking.

Serious Eats / J. Kenji López-Alt

Into this:

Baked cassoulet in an earthenware pot with a crispy, browned top.

Serious Eats / J. Kenji López-Alt

At least, that's what's supposed to happen.

The sad reality is that most of the cassoulets I've cooked in the past have ended up looking like this:

Cassoulet baked in a Dutch oven showing very little crispy skin on top.

Serious Eats / J. Kenji López-Alt

What's the problem?

First off, it's the shape of the pan. A traditional cassoulet pot, called a cassole, is tapered from top to bottom, giving it an extremely high surface area to volume ratio. More room for evaporation means better skin formation and better browning. In fact, the last two pictures above are of cassoulets cooked in the exact same manner, the only difference being the vessel they are cooked in.

Unfortunately, it's tough to find a good cassole around here.

A regular cassoulet will form a crust in about four hours of cooking in a 300°F (150°C) oven. What about if you just cook your Dutch oven cassoulet for longer or hotter? I tried a variety of time and temperature ranges. At the very best, what you end up with is this:

A baked cassoulet with a dry texture and crust formed by the beans and meat.

Serious Eats / J. Kenji López-Alt

Decent crust alright, but the crust is really formed by the beans and the meat, not by the liquid itself. Underneath, the beans are too dry.

The second problem is the store-bought stock I'd been using. Homemade chicken stock tends to be very high in gelatin, a result of the high amount of connective tissue in the bones and cartilage used to make it. Store-bought stock, by contrast, is thin and watery. It's the gelatin proteins that forms the crusty raft on top of the cassoulet, giving it both crust and body.

It's these two problems—wrong pot, not enough gelatin in the stock—that lead many recipes to resort to using breadcrumbs to create an artificial crust.

So what's the solution? Well, the obvious one is to just make your own stock. It's actually way easier than it sounds, though it again requires a bit of a time commitment. I'll admit it: sometimes even I'm too lazy to make my own stock when I've already got a day-long project ahead of me.

So what's the next best thing?

Just fake it.

By blooming store-bought unflavored gelatin in regular store-bought stock, you can create a rich stock full of body that forms a raft just like the real deal. I don't go easy on the gelatin either (remember, you have to make up for using the wrong-shaped pot as well). A full three packets for a quart of liquid gives it the body and crust I'm looking for.

In order to get a cassoulet that stays nice and loose underneath while still building a crust up top, it's important not to drown that crust out. If your liquid level starts to get too low, add more liquid (plain water works) to the pot by carefully pouring it along the side of the pot so that it goes under the crust, not over it.

Break into the cassoulet's crust, and underneath, you've got creamy, flavor-packed beans with meltingly tender nubs of pork belly, sausage, and chicken legs that fall off the bone in moist shreds, all in a rich, sticky liquid that drinks like liquid pork.

Scooping into a cassoulet baked in a Dutch oven with a crisp browned crust and creamy beans.

Serious Eats / J. Kenji López-Alt

This is the kind of fare that demands you sit down and make an event out of it, good Languedoc wine and all.

It's the kind of meal so rich and hearty that all you could possibly eat on the side is a simple green salad (preferably with an excellent French vinaigrette).

I mean, just look at it!

A close up of baked cassoulet on a spoon showing a crisp crust and beans.

Serious Eats / J. Kenji López-Alt

Recipe Facts

4.4

(32)

Active: 60 mins
Total: 16 hrs
Serves: 6 to 8 servings

Rate & Comment

Ingredients

  • 1 pound dried cannellini beans

  • 3 tablespoons kosher salt; for table salt, use half as much by volume

  • 1 quart homemade or store-bought low-sodium chicken stock

  • 3 packets (3/4 ounce) unflavored gelatin, such as Knox (see note)

  • 2 tablespoons duck fat (optional)

  • 8 ounces salt pork, cut into 3/4-inch cubes

  • 6 to 8 pieces of chicken thighs and drumsticks, or 4 whole chicken leg quarters

  • Freshly ground black pepper

  • 1 pound garlic sausage (2 to 4 links, depending on size)

  • 1 large onion, finely diced (about 1 cup)

  • 1 carrot, unpeeled, cut into 3-inch sections

  • 2 stalks celery, cut into 3-inch sections

  • 1 whole head garlic

  • 4 sprigs parsley

  • 2 bay leaves

  • 6 cloves

Directions

  1. In a large bowl, cover beans with 3 quarts water and add salt. Stir to combine and let sit at room temperature overnight. Drain and rinse beans and set aside.

  2. Adjust oven rack to lower middle position and preheat oven to 300°F (150°C). Place stock in a large liquid measuring cup and sprinkle gelatin over the top. Set aside. Heat duck fat (if using) in a large Dutch oven over high heat until shimmering. Add salt pork and cook, stirring occasionally, until browned all over, about 8 minutes. Using a slotted spoon, transfer to a large bowl, leaving rendered fat in Dutch oven, and set aside. (If not using duck fat, cook pork with no additional fat.)

  3. Season chicken pieces with pepper (do not add salt) and place skin side-down in now-empty pan. Cook without moving until well browned, 6 to 8 minutes. Flip chicken pieces and continue cooking until lightly browned on second side, about 3 minutes longer. Transfer to bowl with salt pork.

  4. Add sausages and cook, turning occasionally, until well-browned on both sides. Transfer to bowl with salt pork and chicken. Drain all but 2 tablespoons fat from pot.

  5. Add onions to pot and cook, stirring and scraping up browned bits from the bottom of the pot. Cook until onions are translucent but not browned, about 4 minutes. Add drained beans, carrot, celery, garlic, parsley, bay leaves, cloves, and stock/gelatin mixture. Bring to a simmer over high heat. Reduce to low, cover Dutch oven, and cook until beans are almost tender but retain a slight bite, about 45 minutes.

  6. Using tongs, remove carrots, celery, parsley, bay leaves, and cloves and discard. Add meats to pot and stir to incorporate, making sure that the chicken pieces end up on top of the beans with the skin facing upwards. Beans should be almost completely submerged. Transfer to oven and cook, uncovered, until a thin crust forms on top, about 2 hours, adding more water by pouring it carefully down the side of the pot, as necessary, to keep beans mostly covered.

  7. Break crust with a spoon and shake pot gently to redistribute. Return to oven and continue cooking, stopping to break and shake the crust every 30 minutes until you reach the 4 1/2 hour mark. Return to oven and continue cooking undisturbed until the crust is deep brown and thick, about 5 to 6 hours total. Serve immediately.

Special equipment

Dutch oven

Notes

If you are using homemade chicken stock that already has lots of gelatin (i.e., it should thicken and gel when chilled), you can omit the unflavored gelatin here; if your stock is store-bought, or if it's homemade but watery even when chilled, the unflavored gelatin is an essential ingredient.

Nutrition Facts (per serving)
612 Calories
35g Fat
39g Carbs
36g Protein
Show Full Nutrition Label Hide Full Nutrition Label
×
Nutrition Facts
Servings: 6 to 8
Amount per serving
Calories 612
% Daily Value*
Total Fat 35g 44%
Saturated Fat 12g 62%
Cholesterol 110mg 37%
Sodium 2651mg 115%
Total Carbohydrate 39g 14%
Dietary Fiber 9g 33%
Total Sugars 3g
Protein 36g
Vitamin C 2mg 12%
Calcium 174mg 13%
Iron 8mg 42%
Potassium 1438mg 31%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)